﻿//-----------------------------------------------------------------------
// <copyright file="IExecutorFactory.cs" company="tuliprules.org">
//     Copyright (c) 2010 tuplelister, tuliprules.org.
// </copyright>
// <summary>This is the IExecutorFactory interface.</summary>
//-----------------------------------------------------------------------

namespace Tulip.Rules
{
    using Engine;
    using Engine.Models.ClosedWorld;

    /// <summary>
    /// Represents an executor factory.
    /// </summary>
    public interface IExecutorFactory
    {
        /// <summary>
        /// Returns an instance of an executor for the given Tulip model.
        /// </summary>
        /// <param name="model">The Tulip model.</param>
        /// <returns>
        /// An executor the given Tulip model.
        /// </returns>
        Executor GetExecutor(Items model);
    }
}
